package com.swj.common.core.utils;

import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

public class SystemInfoUtil {

    /**
     * 收集系统信息
     * @return 系统信息map
     */
    public static Map<String,String> gatherInfo(){
        Map<String,String> map=new HashMap<>(32);
        Properties properties = System.getProperties();
        map.put("Java的运行环境版本：",properties.getProperty("java.version"));
        map.put("Java的运行环境供应商：",properties.getProperty("java.vendor"));
        map.put("Java供应商的URL：",properties.getProperty("java.vendor.url"));
        map.put("Java的安装路径：",properties.getProperty("java.home"));
        map.put("Java的虚拟机规范版本：",properties.getProperty("java.vm.specification.version"));
        map.put("Java的虚拟机规范供应商：",properties.getProperty("java.vm.specification.vendor"));
        map.put("Java的虚拟机规范名称：",properties.getProperty("java.vm.specification.name"));
        map.put("Java的虚拟机实现版本：",properties.getProperty("java.vm.version"));
        map.put("Java的虚拟机实现供应商：",properties.getProperty("java.vm.vendor"));
        map.put("Java的虚拟机实现名称：",properties.getProperty("java.vm.name"));
        map.put("Java运行时环境规范版本：",properties.getProperty("java.specification.version"));
        map.put("Java运行时环境规范供应商：",properties.getProperty("java.specification.vender"));
        map.put("Java运行时环境规范名称：",properties.getProperty("java.specification.name"));
        map.put("Java的类格式版本号：",properties.getProperty("java.class.version"));
        map.put("Java的类路径：",properties.getProperty("java.class.path"));
        map.put("加载库时搜索的路径列表：",properties.getProperty("java.library.path"));
        map.put("默认的临时文件路径：",properties.getProperty("java.io.tmpdir"));
        map.put("一个或多个扩展目录的路径：",properties.getProperty("java.ext.dirs"));
        map.put("操作系统的名称：",properties.getProperty("os.name"));
        map.put("操作系统的构架：",properties.getProperty("os.arch"));
        map.put("操作系统的版本：",properties.getProperty("os.version"));
        //在 unix 系统中是＂／＂
        map.put("文件分隔符：",properties.getProperty("file.separator"));
        //在 unix 系统中是＂:＂
        map.put("路径分隔符：",properties.getProperty("path.separator"));
        //在 unix 系统中是＂/n＂
        map.put("行分隔符：",properties.getProperty("line.separator"));
        map.put("用户的账户名称：",properties.getProperty("user.name"));
        map.put("用户的主目录：",properties.getProperty("user.home"));
        map.put("用户的当前工作目录：",properties.getProperty("user.dir"));
        return map;
    }

    public static void main(String[] args) {
        Properties properties = System.getProperties();
        for (Object obj : properties.keySet()
        ) {
            System.out.println("" + obj + "--->>>" + properties.get(obj));
            System.out.println("***********************************************************");

        }
        System.out.println("Java的运行环境版本："+properties.getProperty("java.version"));
        System.out.println("Java的运行环境供应商："+properties.getProperty("java.vendor"));
        System.out.println("Java供应商的URL："+properties.getProperty("java.vendor.url"));
        System.out.println("Java的安装路径："+properties.getProperty("java.home"));
        System.out.println("Java的虚拟机规范版本："+properties.getProperty("java.vm.specification.version"));
        System.out.println("Java的虚拟机规范供应商："+properties.getProperty("java.vm.specification.vendor"));
        System.out.println("Java的虚拟机规范名称："+properties.getProperty("java.vm.specification.name"));
        System.out.println("Java的虚拟机实现版本："+properties.getProperty("java.vm.version"));
        System.out.println("Java的虚拟机实现供应商："+properties.getProperty("java.vm.vendor"));
        System.out.println("Java的虚拟机实现名称："+properties.getProperty("java.vm.name"));
        System.out.println("Java运行时环境规范版本："+properties.getProperty("java.specification.version"));
        System.out.println("Java运行时环境规范供应商："+properties.getProperty("java.specification.vender"));
        System.out.println("Java运行时环境规范名称："+properties.getProperty("java.specification.name"));
        System.out.println("Java的类格式版本号："+properties.getProperty("java.class.version"));
        System.out.println("Java的类路径："+properties.getProperty("java.class.path"));
        System.out.println("加载库时搜索的路径列表："+properties.getProperty("java.library.path"));
        System.out.println("默认的临时文件路径："+properties.getProperty("java.io.tmpdir"));
        System.out.println("一个或多个扩展目录的路径："+properties.getProperty("java.ext.dirs"));
        System.out.println("操作系统的名称："+properties.getProperty("os.name"));
        System.out.println("操作系统的构架："+properties.getProperty("os.arch"));
        System.out.println("操作系统的版本："+properties.getProperty("os.version"));
        //在 unix 系统中是＂／＂
        System.out.println("文件分隔符："+properties.getProperty("file.separator"));
        //在 unix 系统中是＂:＂
        System.out.println("路径分隔符："+properties.getProperty("path.separator"));
        //在 unix 系统中是＂/n＂
        System.out.println("行分隔符："+properties.getProperty("line.separator"));
        System.out.println("用户的账户名称："+properties.getProperty("user.name"));
        System.out.println("用户的主目录："+properties.getProperty("user.home"));
        System.out.println("用户的当前工作目录："+properties.getProperty("user.dir"));
    }
}


/*
#### 里面参数很多,转一位博友的整理.
| java.version                  | Java 运行时环境版本               |
| ----------------------------- | --------------------------------- |
| java.vendor                   | Java 运行时环境供应商             |
| java.vendor.url               | Java 供应商的 URL                 |
| java.home                     | Java 安装目录                     |
| java.vm.specification.version | Java 虚拟机规范版本               |
| java.vm.specification.vendor  | Java 虚拟机规范供应商             |
| java.vm.specification.name    | Java 虚拟机规范名称               |
| java.vm.version               | Java 虚拟机实现版本               |
| java.vm.vendor                | Java 虚拟机实现供应商             |
| java.vm.name                  | Java 虚拟机实现名称               |
| java.specification.version    | Java 运行时环境规范版本           |
| java.specification.vendor     | Java 运行时环境规范供应商         |
| java.specification.name       | Java 运行时环境规范名称           |
| java.class.version            | Java 类格式版本号                 |
| java.class.path               | Java 类路径                       |
| java.library.path             | 加载库时搜索的路径列表               |
| java.io.tmpdir                | 默认的临时文件路径                |
| java.compiler                 | 要使用的 JIT 编译器的名称         |
| java.ext.dirs                 | 一个或多个扩展目录的路径          |
| os.name                       | 操作系统的名称                    |
| os.arch                       | 操作系统的架构                    |
| os.version                    | 操作系统的版本                    |
| file.separator                | 文件分隔符（在 UNIX 系统中是“/”） |
| path.separator                | 路径分隔符（在 UNIX 系统中是“:”） |
| line.separator                | 行分隔符（在 UNIX 系统中是“/n”）  |
| user.name                     | 用户的账户名称                    |
| user.home                     | 用户的主目录                      |
| user.dir                      | 用户的当前工作目录                |
*/

